/**
 * 1.数组元素可以是任意数据类型
 * 
 */
//1.直接字面量创建数组
//var arr=[10,'hello',true,null,undefined,{name:'dingyue'}];
//console.log(arr,'数组');
//2.通过索引/下标访问数组元素 从0开始 arr[index] arr.length为数组长度 也是数组元素个数
//console.log(arr[3]);

/**
 * 数组api
 * 1.pop方法 从数组删除一个元素
 * 2.push方法 从数组末尾增加一个元素
 * 3,shift 从数组头部删除一个数组元素
 * 4.unshift 从数组头部开始添加数组元素
 * 5.splice 从数组任意位置删除或者增加元素
 *     参数 ：index howmany（值是0表示添加 值是n表示删除几项）增加数组元素
 * 6.reverse 反转数组元素
 */
//arr.pop();
//arr.push('hello.js');
//arr.shift();
//arr.unshift(100,200,300);
//arr.splice(2,0,false);
//arr.reverse();//反转数组元素
//console.log(arr);




//循环遍历数组元素
for(let i=0;i<arr.length;i++){
    console.log(i,arr[i])
}
for(let index in arr){
console.log(index,arr[index])

}



/**
 * 迭代方法：
 * 1.forEach for循环的升级版 循环遍历数组元素
 * 2.filter  过滤符合条件的数组元素
 * 3.map  映射 对每一个数组元素映射
 */
var arr=[10,'hello',true,null,undefined,{name:'dingyue'}];
var res  =  arr.map(function(item,index,arr){
    return +item
})
console.log(res);
//NaN Not a Number  不是一个数
arr.forEach(function(item,index,arr){
    //item表示数组每一项 index表示每一项对应的索引 arr表示数组本身
    item=item+1;
    console.log(item,index,arr)
});
arr.filter(function(item,index,arr){
  //要获取函数返回值 函数内部需要return返回
  return (typeof item) == number
});
console.log(res);



//2.使用构造函数创建数组
var arr = new Array(10,20,30,40,50);//单独放Number会被认为是数组长度
console.log(arr);